home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / lib / pm-utils / power.d / 95hdparm-apm next >
Text File  |  2009-10-06  |  1KB  |  53 lines

  1. #! /bin/sh
  2. #
  3. # This script adjusts hard drive APM settings using hdparm. The hardware
  4. # defaults (usually hdparm -B 128) cause excessive head load/unload cycles
  5. # on many modern hard drives. We therefore set hdparm -B 254 while on AC
  6. # power. On battery we set hdparm -B 128, because the head parking is
  7. # very useful for shock protection.
  8. #
  9. # Refactored from acpi-support's 90-hdparm.sh for pm-utils
  10.  
  11. if grep -wq "nohdparm" /proc/cmdline ; then
  12.     exit 0
  13. fi
  14.  
  15. . "${PM_FUNCTIONS}"
  16. . "${PM_UTILS_LIBDIR}/hdparm-functions"
  17.  
  18. resume_hdparm_apm()
  19. {
  20.     if [ -e /usr/sbin/laptop_mode ] ; then 
  21.         LMT_CONTROL_HD_POWERMGMT=$(. /etc/laptop-mode/laptop-mode.conf && echo "$CONTROL_HD_POWERMGMT")
  22.         if [ "$LMT_CONTROL_HD_POWERMGMT" != 0 ] \
  23.            && [ -e /var/run/laptop-mode-tools/enabled ]
  24.         then
  25.             # Laptop mode controls hdparm -B settings, we don't.
  26.             return
  27.         fi
  28.     fi
  29.  
  30.     for dev in /dev/sd? /dev/hd? ; do
  31.         if [ -b $dev ] ; then
  32.             # Check for APM support; discard errors since not all
  33.             # drives support HDIO_GET_IDENTITY (-i).
  34.             if hdparm -i $dev 2> /dev/null | grep -q 'AdvancedPM=yes'
  35.             then
  36.                 level=$(hdparm_apm_option_for_disk $dev)
  37.                 if [ -n "$level" ]; then
  38.                     hdparm -B $level $dev
  39.                 fi
  40.             fi
  41.         fi
  42.     done
  43. }
  44.  
  45. case "$1" in
  46.     thaw|resume|true|false) # true and false for power.d
  47.         resume_hdparm_apm
  48.         ;;
  49.     *)
  50.         exit 254
  51.         ;;
  52. esac
  53.